// pages/articlemore/articlemore.js
import {getArticleList,getArticleListByCategory} from '../../api/index'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    active: 0, // 当前激活的tab
    loading: false,
    hasMore: true,
    pageNo: 1,
    pageSize: 10,
    
    // 各栏目文章数据
    articles: {
      'all': [], // 精选（全部）
      '1': [],   // 情绪
      '2': [],   // 情感
      '3': [],   // 性格
      '4': []    // 家庭
    },
    
    // 各栏目加载状态
    loadingStatus: {
      'all': false,
      '1': false,
      '2': false,
      '3': false,
      '4': false
    },
    
    // 各栏目是否有更多数据
    hasMoreStatus: {
      'all': true,
      '1': true,
      '2': true,
      '3': true,
      '4': true
    },
    
    // 各栏目页码
    pageNoStatus: {
      'all': 1,
      '1': 1,
      '2': 1,
      '3': 1,
      '4': 1
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 加载默认tab的数据（精选）
    this.loadArticles('all')
  },
    // Tab切换事件
  onTabChange(e) {
    const index = e.detail.index
    this.setData({ active: index })
    
    // 根据tab索引获取对应的category
    const categories = ['all', '1', '2', '3', '4']
    const currentCategory = categories[index]
    
    // 如果该栏目还没有数据，则加载
    if (this.data.articles[currentCategory].length === 0) {
      this.loadArticles(currentCategory)
    }
  },
    // 加载文章列表
  async loadArticles(category, isLoadMore = false) {
    if (this.data.loadingStatus[category]) return

    this.setData({
      [`loadingStatus.${category}`]: true,
      loading: true
    })

    try {
      const pageNo = isLoadMore ? this.data.pageNoStatus[category] : 1
      
      let result
      if (category === 'all') {
        // 精选栏目：获取全部文章
        result = await getArticleList(pageNo, this.data.pageSize)
      } else {
        // 其他栏目：根据category获取
        result = await getArticleListByCategory(category, pageNo, this.data.pageSize)
      }

      console.log(`${category}栏目文章数据:`, result)

      // 处理接口返回的数据结构
      let articleList = result
      if (result && result.list) {
        articleList = result.list
      }

      // 格式化文章数据
      const formattedArticles = this.formatArticleList(articleList)

      if (isLoadMore) {
        // 加载更多
        const currentArticles = this.data.articles[category] || []
        this.setData({
          [`articles.${category}`]: [...currentArticles, ...formattedArticles],
          [`pageNoStatus.${category}`]: pageNo + 1,
          [`hasMoreStatus.${category}`]: formattedArticles.length >= this.data.pageSize
        })
      } else {
        // 刷新
        this.setData({
          [`articles.${category}`]: formattedArticles,
          [`pageNoStatus.${category}`]: 1,
          [`hasMoreStatus.${category}`]: formattedArticles.length >= this.data.pageSize
        })
      }

    } catch (error) {
      console.error(`加载${category}栏目文章失败:`, error)
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      })
    } finally {
      this.setData({
        [`loadingStatus.${category}`]: false,
        loading: false
      })
    }
  },
    // 格式化文章数据
    formatArticleList(articleList) {
      if (!articleList || !Array.isArray(articleList)) {
        return []
      }
  
      return articleList.map(article => ({
        id: article.id,
        title: article.title || '无标题',
        coverImage: article.coverImage || '/assets/img/index/background.jpg',
        content: article.content || '',
        readCount: Math.floor(Math.random() * 1000) + 100, // 模拟阅读量
        createTime: article.createTime,
        author: article.author || '匿名'
      }))
    },
  
    // 加载更多
    loadMore() {
      const categories = ['all', '1', '2', '3', '4']
      const currentCategory = categories[this.data.active]
      
      if (this.data.hasMoreStatus[currentCategory] && !this.data.loadingStatus[currentCategory]) {
        this.loadArticles(currentCategory, true)
      }
    },
  
    // 跳转到文章详情
    navigateToDetail(e) {
      const id = e.currentTarget.dataset.id
      if (id) {
        wx.navigateTo({
          url: `/pages/articledetail/articledetail?id=${id}`
        })
      }
    },
  
    // 下拉刷新
    onPullDownRefresh() {
      const categories = ['all', '1', '2', '3', '4']
      const currentCategory = categories[this.data.active]
      this.loadArticles(currentCategory, false).then(() => {
        wx.stopPullDownRefresh()
      })
    },
  
    // 上拉加载更多
    onReachBottom() {
      this.loadMore()
    },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})